/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Codigo;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 *
 * @author kyerte
 */
public class ConsultaResultadosCliente {

    private Connection conexion = null;
    private PreparedStatement consultarResultadosCliente = null;
    private PreparedStatement insertarResultadosCliente = null;
    private PreparedStatement actualizarResultadosCliente = null;
    private PreparedStatement eliminarResultadosCliente = null;
    private PreparedStatement obtenerIdResultados = null;

    ConsultaResultadosCliente() {

        conexion = FrmPrincipal.conexion;

        try {

            consultarResultadosCliente = conexion.prepareStatement("SELECT * FROM "
                    + "ResultadosCliente WHERE idResultadosVisita=?");
            insertarResultadosCliente = conexion.prepareStatement("INSERT INTO "
                    + "ResultadosCliente(idMediosPubl, idCliente, "
                    + "NivelInteres, InteresadoEn, ViviendaActual,"
                    + "ObjetivoCompra, Acompaniante, ConociaDesarrollo, Vehiculo,"
                    + "IngresosPromedio, NivelGusto, Fecha, Hora) "
                    + "VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?)");
            actualizarResultadosCliente = conexion.prepareStatement("UPDATE "
                    + "ResultadosCliente SET idMediosPubl=?,idCliente=?,"
                    + "NivelInteres=?,InteresadoEn=?,ViviendaActual=?,ObjetivoCompra=?,"
                    + "Acompaniante=?,ConociaDesarrollo=?,Vehiculo=?,IngresosPromedio=?,"
                    + "NivelGusto=?, Fecha=?, Hora=? WHERE idResultadosVisita=?");
            eliminarResultadosCliente = conexion.prepareStatement("DELETE FROM "
                    + "ResultadosCliente WHERE idResultadosCliente=?");
            obtenerIdResultados = conexion.prepareStatement("SELECT idResultadosVisita "
                    + "FROM ResultadosCliente WHERE idCliente=?");

        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }
    }

    public ResultadosCliente obtenerResultadosCliente(int idResultados) {
        ResultadosCliente resultado = null;
        java.sql.ResultSet conjuntoResultados = null;

        try {

            consultarResultadosCliente.setInt(1, idResultados);
            conjuntoResultados = consultarResultadosCliente.executeQuery();

            while (conjuntoResultados.next()) {
                resultado = new ResultadosCliente(
                        conjuntoResultados.getInt("idResultadosVisita"),
                        conjuntoResultados.getInt("idMediosPubl"),
                        conjuntoResultados.getInt("idCliente"),
                        conjuntoResultados.getInt("NivelInteres"),
                        conjuntoResultados.getString("InteresadoEn"),
                        conjuntoResultados.getString("ViviendaActual"),
                        conjuntoResultados.getString("ObjetivoCompra"),
                        conjuntoResultados.getString("Acompaniante"),
                        conjuntoResultados.getBoolean("ConociaDesarrollo"),
                        conjuntoResultados.getString("Vehiculo"),
                        conjuntoResultados.getFloat("IngresosPromedio"),
                        conjuntoResultados.getInt("NivelGusto"),
                        conjuntoResultados.getDate("Fecha"),
                        conjuntoResultados.getTime("Hora"));
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        } finally {
            try {
                conjuntoResultados.close();
            } catch (SQLException ex) {
                ex.printStackTrace();
                close();
            }
        }

        return resultado;
    }

    public int agregarNuevoResultadoCliente(int idMedios, int idCliente, int nivelInteres,
            String interesadoEn, String viviendaActual, String objetivo,
            String acompaniante, boolean conociaDes, String vehiculo, float ingreso,
            int nivelGusto, java.sql.Date fecha, java.sql.Time hora) {

        int resultado = 0;

        try {

            insertarResultadosCliente.setInt(1, idMedios);
            insertarResultadosCliente.setInt(2, idCliente);
            insertarResultadosCliente.setInt(3, nivelInteres);
            insertarResultadosCliente.setString(4, interesadoEn);
            insertarResultadosCliente.setString(5, viviendaActual);
            insertarResultadosCliente.setString(6, objetivo);
            insertarResultadosCliente.setString(7, acompaniante);
            insertarResultadosCliente.setBoolean(8, conociaDes);
            insertarResultadosCliente.setString(9, vehiculo);
            insertarResultadosCliente.setFloat(10, ingreso);
            insertarResultadosCliente.setInt(11, nivelGusto);
            insertarResultadosCliente.setDate(12, fecha);
            insertarResultadosCliente.setTime(13, hora);

            resultado = insertarResultadosCliente.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }

        return resultado;
    }

    public int actualizarResultadoCliente(int idMedios, int idCliente, int nivelInteres,
            String interesadoEn, String viviendaActual, String objetivo,
            String acompaniante, boolean conociaDes, String vehiculo, float ingreso,
            int nivelGusto, java.sql.Date fecha, java.sql.Time horaSQL, int idResultado) {

        int resultado = 0;

        try {

            actualizarResultadosCliente.setInt(1, idMedios);
            actualizarResultadosCliente.setInt(2, idCliente);
            actualizarResultadosCliente.setInt(3, nivelInteres);
            actualizarResultadosCliente.setString(4, interesadoEn);
            actualizarResultadosCliente.setString(5, viviendaActual);
            actualizarResultadosCliente.setString(6, objetivo);
            actualizarResultadosCliente.setString(7, acompaniante);
            actualizarResultadosCliente.setBoolean(8, conociaDes);
            actualizarResultadosCliente.setString(9, vehiculo);
            actualizarResultadosCliente.setFloat(10, ingreso);
            actualizarResultadosCliente.setInt(11, nivelGusto);
            actualizarResultadosCliente.setDate(12, fecha);
            actualizarResultadosCliente.setTime(13, horaSQL);
            actualizarResultadosCliente.setInt(14, idResultado);

            resultado = actualizarResultadosCliente.executeUpdate();

        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }

        return resultado;
    }

    public int eliminarResultadosCliente(int idResultado) {

        int resultado = 0;

        try {

            eliminarResultadosCliente.setInt(1, idResultado);
            resultado = eliminarResultadosCliente.executeUpdate();
        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }

        return resultado;

    }

    public int obtenerIdResultados(int idCliente) {
        int resultado = 0;
        java.sql.ResultSet conjuntoResultados = null;

        try {

            obtenerIdResultados.setInt(1, idCliente);
            conjuntoResultados = obtenerIdResultados.executeQuery();

            while (conjuntoResultados.next()) {
                resultado = conjuntoResultados.getInt("idResultadosVisita");
            }

        } catch (SQLException ex) {
            ex.printStackTrace();
            close();
        }
        return resultado;
    }

    public int obtenerIdUltimoRegistro() {
        int ultimoId = 0;
        ResultSet conjuntoResultados = null;
        try {
            Statement instruccion = conexion.createStatement();
            conjuntoResultados = instruccion.executeQuery("SELECT MAX(idResultadosVisita) "
                    + "AS id FROM ResultadosCliente");

            while (conjuntoResultados.next()) {
                ultimoId = conjuntoResultados.getInt("id");
            }

        } catch (SQLException ex) {
            ex.printStackTrace();
            close();

        }

        return ultimoId;
    }

    private void close() {
        try {
            conexion.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }
}
